home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / data / happysrc / hapai.h next >
Text File  |  1993-11-30  |  4KB  |  64 lines

  1. /*********************************************************************
  2.  *                                                                   *
  3.  *      HAPPy  assembler & interpriter common header                 *
  4.  *                                                                   *
  5.  *                Copyright (c) H.Asano 1992,1993                    *
  6.  *                                                                   *
  7.  *********************************************************************/
  8.  
  9.  
  10. #define Maxstore   10000                /* 記憶装置の大きさ(ワード数) */
  11. #define Maxint     2147483647L          /* 最大整数値                 */
  12. #define Largeint   32768L               /* intより大きい数           */
  13.  
  14. #define NilValue   Maxstore + 1        /*  ポインタのnilの値          */
  15.  
  16. #define MaxIDlng 32                     /* 名前の最大識別可能文字数   */
  17. #define MaxRFlen 32                     /* 実ファイル名の最大長       */
  18. #define Maxfileno 8                     /* 最大ファイル数(input,output以外)*/
  19.  
  20. #define addset(Set,pos) ((Set) |= ( (long)1 << ((pos) & 0x1F) ))
  21. #define inset(Set,pos)  (( ((long)(Set)) >> ((pos) & 0x1F) ) & 0x1)
  22.  
  23. typedef long integer ;                  /* integer は long型とする    */
  24. typedef enum bool  {false ,             /* 偽                         */
  25.             true                /* 真                         */
  26. }  boolean ;                            /* pascalのboolean型と同じ    */
  27.  
  28. typedef struct  {             /*********  命令格納域 型定義           */
  29.   unsigned char  cdop  ;                /* operation                  */
  30.   char           cdp   ;                /* p operand                  */
  31.   short          cdq   ;                /* q operand                  */
  32. } _code ;
  33.  
  34. typedef union  {              /*********  記憶装置 型定義             */
  35.   integer        vi    ;                /* integer                    */
  36.   float          vr    ;                /* real                       */
  37.   short          vb    ;                /* boolean                    */
  38.   long           vs    ;                /* set (0..31)                */
  39.   short          vc    ;                /* char                       */
  40.   int            va    ;                /* address                    */
  41.   _code          vo    ;                /* object code                */
  42. } _store;
  43.  
  44. typedef enum fmode {
  45.            undefined  ,         /* 不定                               */
  46.            inspection ,         /* 検査モード                         */
  47.            generation           /* 生成モード                         */
  48. } fmode ;
  49.  
  50. typedef struct fileinfo {       /* ファイル情報テーブル               */
  51.   char filename[MaxIDlng+1] ;   /* 外部ファイル  論理ファイル名       */
  52.   int  fileadr       ;          /* P-code上の ファイル変数アドレス    */
  53.   int  filesize      ;          /* バッファ変数の大きさ               */
  54.   char rfname[MaxRFlen+1]   ;   /* 実ファイル名                       */
  55.   _store *filebuf    ;          /* バッファ変数アドレス               */
  56.   boolean textfile   ;          /* テキストファイルの時 真            */
  57.   boolean eolnflag   ;          /* テキストファイルのeolnの時 真      */
  58.   boolean writelnflag;          /* 最後が改行の時 真                  */
  59.   FILE *fp           ;          /* ファイルポインタ                   */
  60.   fmode mode         ;          /* 生成モード / 検査モード / 不定     */
  61. } fileinfo           ;
  62.  
  63. EXTERN fileinfo fi[Maxfileno+2] ;
  64.